package com.bw.coupon.service;

import com.bw.coupon.domain.PaymentFlow;
import com.bw.coupon.domain.TPmsSkuInfo;
import com.bw.coupon.domain.req.TDiscountCouponReq;
import com.bw.coupon.domain.TDiscountCoupon;
import com.bw.coupon.domain.res.TDiscountCouponRes;
import com.bw.coupon.domain.vo.CouponAdd;

import java.util.List;

/**
 * @Author：尚志豪
 * @Package：com.bw.coupon.service
 * @Project：doudi-group-practical_training-02
 * @name：CouponService
 * @Date：2025/1/12 20:35
 */
public interface ICouponService {
    /**
     * B端 商家 发布优惠劵
     */
    void add(CouponAdd couponAdd);
    /**
     * B端 商家 多条件查询优惠卷分页列表
     */
    List<TDiscountCouponRes> merchantCouponList(TDiscountCouponReq tDiscountCouponReq);
    /**
     * B端 通过优惠劵id查询优惠劵信息
     */
    TDiscountCoupon accessCouponInformationByCouponId(Long id);
    /**
     * B端 商家 通过优惠劵id失效
     */
    void couponExpired(Long id);
    /**
     * B端 商家 通过优惠劵id删除
     */
    void couponDeletion(Long id);
    /**
     * B端 发布优惠劵页面 通过商铺id查询所有商品
     */
    List<TPmsSkuInfo> publishAllItemsInCoupon(Long id);

    /**
     * 保存支付流水记录到数据库
     * @param paymentFlow
     */
    void PaymentStatementAdd(PaymentFlow paymentFlow);

    /**
     * 查询订单号是否存在
     * @param outTradeNo
     * @return
     */
    PaymentFlow selectOutTradeNo(String outTradeNo);
}
